<?php
class Sosweb_Util_Validator_CustomValidator
{
	public static function getAlnumValidator()
	{
		$validator = new Zend_Validate_Alnum();
		$validator->setMessage('Znaki spoza kolekcji liter i cyfr.');
		
		return $validator;
	}
	
	public static function getAlphaValidator()
	{
		$validator = new Zend_Validate_Alpha();
		$validator->setMessage('Dozwolone są tylko znaki alfanumeryczne.');
		
		return $validator;
	}	

	public static function getStringLengthValidator($min, $max)
	{
		$validator = new Zend_Validate_StringLength($min, $max);
		
		if ($min == $max)
		{
			$validator->setMessage('Wymagana ilość znaków to '.$min.'.', Zend_Validate_StringLength::TOO_LONG);
			$validator->setMessage('Wymagana ilość znaków to '.$min.'.', Zend_Validate_StringLength::TOO_SHORT);
		}
		else
		{
			$validator->setMessage('Wymagana ilość znaków od '.$min.' do '.$max.'.', Zend_Validate_StringLength::TOO_SHORT);
			$validator->setMessage('Wymagana ilość znaków od '.$min.' do '.$max.'.', Zend_Validate_StringLength::TOO_LONG);				
		}
		
		return $validator;
	}
	
	public static function getNotEmptyValidator()
	{
		$validator = new Zend_Validate_NotEmpty();
		$validator->setMessage('Pole nie może być puste.');
		
		return $validator;
	}

	public static function getEmailAddressValidator()
	{
		$validator = new Zend_Validate_EmailAddress();
		$validator->setMessage('Wprowadzona wartość %value% nie spełnia kryteriów adresu email.');
		
		return $validator;
	}
	
	public static function getDigitsValidator()
	{
		$validator = new Zend_Validate_Digits();
		$validator->setMessage('Wprowadzona wartość %value% nie jest liczbą.');
		
		return $validator;
	}	

	public static function getNoRecordExistsValidator($table, $column, $where = null, $adapter = null)
	{
		$validator = new Zend_Validate_Db_NoRecordExists($table, $column, $where, $adapter);
		$validator->setMessage('Wartość %value% dla pola '.$column.' istnieje już w bazie danych.', Zend_Validate_Db_NoRecordExists::ERROR_RECORD_FOUND);
		
		return $validator;
	}	
	
	
}